/*****************************************************************************

File:   InterfaceDataExtrudeP10.java

Date          Build     Author        Version    Comments
27-Dec-12    P-20-20    dshah          $$1        Created

****************************************************************************/
package com.ptc.otkjavaexamples;
import com.ptc.pfc.pfcGeometry.*;
import com.ptc.cipjava.*;
import com.ptc.pfc.pfcSession.*;
import com.ptc.pfc.pfcCommand.*;
import com.ptc.pfc.pfcGlobal.*;
import com.ptc.pfc.pfcModel.*;
import com.ptc.pfc.pfcModelItem.*;
import com.ptc.pfc.pfcFeature.*;
import com.ptc.pfc.pfcSolid.*;
import java.io.*;

import com.ptc.pfc.pfcFamily.*;
import com.ptc.pfc.pfcServer.*;
import com.ptc.pfc.pfcWindow.*;
import com.ptc.wfc.wfcSolid.*;
import com.ptc.pfc.pfcBase.*;
import com.ptc.wfc.wfcModel.*;
import com.ptc.wfc.wfcGeometry.*;
import com.ptc.wfc.wfcSolid.*;
import com.ptc.wfc.wfcPart.*;
import com.ptc.pfc.pfcPart.*;
import com.ptc.pfc.pfcDimension.*;
import com.ptc.pfc.pfcAssembly.*;
import com.ptc.pfc.pfcSelect.*;
import com.ptc.pfc.pfcUnits.*;
import com.ptc.pfc.pfcObject.*;
import com.ptc.pfc.pfcUI.*;
import com.ptc.pfc.pfcRelations.*;
import com.ptc.pfc.pfcDetail.*;
import com.ptc.pfc.pfcDrawing.*;
import com.ptc.pfc.pfcView.*;
import com.ptc.pfc.pfcView2D.*;
import com.ptc.pfc.pfcModel2D.*;

class InterfaceDataExtrudeP10
{

	public InterfaceDataExtrudeP10()
	{
	}

	public static InterfaceData OtkUtilInterfaceData()
	{
		try
		{
		WSurfaceDescriptors wSurfDescs = WSurfaceDescriptors.create(); 
		wSurfDescs = SurfaceDescsExtrudeP10.OtkUtilSurfaceDescriptorCreate();
		QuiltDatas wQuiltDatas = QuiltDatas.create();
		wQuiltDatas = QuiltDatasExtrudeP10.OtkUtilQuiltDatasCreate();

		EdgeDescriptors wEdgeDescs = EdgeDescriptors.create();
		 wEdgeDescs = EdgeDescsExtrudeP10.OtkUtilEdgeDescriptorCreate();

		DatumDatas wDatumDatas = DatumDatas.create();
		Vector3D wXAxis1 = otkCreateIntfDataUtils.CreatePfcVector3D ( 0.0 , 1.0 , 0.0 );
		Vector3D wYAxis1 = otkCreateIntfDataUtils.CreatePfcVector3D ( 0.0 , 0.0 , 1.0 );
		Vector3D wZAxis1 = otkCreateIntfDataUtils.CreatePfcVector3D ( 1.0 , 0.0 , 0.0 );
		Point3D wOrigin1 = otkCreateIntfDataUtils.CreatePfcPoint3D( 0.0 , 0.0 , 0.0 );

		WPlaneData WPlaneData1 = wfcGeometry.WPlaneData_Create(wXAxis1, wYAxis1, wZAxis1, wOrigin1);
		PlaneDatumObject WPlaneObject1 = wfcGeometry.PlaneDatumObject_Create(WPlaneData1);
		DatumObject WDatumObject1 = (DatumObject)(WPlaneObject1);

		DatumData WDatumData1 = wfcGeometry.DatumData_Create(2 , "RIGHT" , WDatumObject1);
		wDatumDatas.append(WDatumData1);

		Vector3D wXAxis2 = otkCreateIntfDataUtils.CreatePfcVector3D ( 0.0 , 0.0 , 1.0 );
		Vector3D wYAxis2 = otkCreateIntfDataUtils.CreatePfcVector3D ( 1.0 , 0.0 , 0.0 );
		Vector3D wZAxis2 = otkCreateIntfDataUtils.CreatePfcVector3D ( 0.0 , 1.0 , 0.0 );
		Point3D wOrigin2 = otkCreateIntfDataUtils.CreatePfcPoint3D( 0.0 , 0.0 , 0.0 );

		WPlaneData WPlaneData2 = wfcGeometry.WPlaneData_Create(wXAxis2, wYAxis2, wZAxis2, wOrigin2);
		PlaneDatumObject WPlaneObject2 = wfcGeometry.PlaneDatumObject_Create(WPlaneData2);
		DatumObject WDatumObject2 = (DatumObject)(WPlaneObject2);

		DatumData WDatumData2 = wfcGeometry.DatumData_Create(4 , "TOP" , WDatumObject2);
		wDatumDatas.append(WDatumData2);

		Vector3D wXAxis3 = otkCreateIntfDataUtils.CreatePfcVector3D ( 1.0 , 0.0 , 0.0 );
		Vector3D wYAxis3 = otkCreateIntfDataUtils.CreatePfcVector3D ( 0.0 , 1.0 , 0.0 );
		Vector3D wZAxis3 = otkCreateIntfDataUtils.CreatePfcVector3D ( 0.0 , 0.0 , 1.0 );
		Point3D wOrigin3 = otkCreateIntfDataUtils.CreatePfcPoint3D( 0.0 , 0.0 , 0.0 );

		WPlaneData WPlaneData3 = wfcGeometry.WPlaneData_Create(wXAxis3, wYAxis3, wZAxis3, wOrigin3);
		PlaneDatumObject WPlaneObject3 = wfcGeometry.PlaneDatumObject_Create(WPlaneData3);
		DatumObject WDatumObject3 = (DatumObject)(WPlaneObject3);

		DatumData WDatumData3 = wfcGeometry.DatumData_Create(6 , "FRONT" , WDatumObject3);
		wDatumDatas.append(WDatumData3);

		Vector3D wXAxis4 = otkCreateIntfDataUtils.CreatePfcVector3D ( 1.0 , 0.0 , 0.0 );
		Vector3D wYAxis4 = otkCreateIntfDataUtils.CreatePfcVector3D ( 0.0 , 1.0 , 0.0 );
		Vector3D wZAxis4 = otkCreateIntfDataUtils.CreatePfcVector3D ( 0.0 , 0.0 , 1.0 );
		Vector3D wOrigin4 = otkCreateIntfDataUtils.CreatePfcVector3D( 0.0 , 0.0 , 0.0 );

		WCsysData WCsysData4 = wfcGeometry.WCsysData_Create(wXAxis4, wYAxis4, wZAxis4, wOrigin4);
		CsysDatumObject WCsysObject4 = wfcGeometry.CsysDatumObject_Create(WCsysData4);
		DatumObject WDatumObject4 = (DatumObject)(WCsysObject4);

		DatumData WDatumData4 = wfcGeometry.DatumData_Create(8 , "PRT_CSYS_DEF" , WDatumObject4);
		wDatumDatas.append(WDatumData4);

		// type : CURVE_LINE
		Point3D  WDPoint15 = otkCreateIntfDataUtils.CreatePfcPoint3D( 0.0 , 32.38023835193326 , 0.0 );
		Point3D  WDPoint25 = otkCreateIntfDataUtils.CreatePfcPoint3D( 0.0 , 32.38023835193326 , 252.34 );
		LineDescriptor  WDLineDesc5 = pfcGeometry.LineDescriptor_Create(WDPoint15, WDPoint25);
		CurveDescriptor  WDCurveDesc5 = (CurveDescriptor)(WDLineDesc5); 

		CurveDatumObject WCurveObject5 = wfcGeometry.CurveDatumObject_Create(WDCurveDesc5);
		DatumObject WDatumObject5 = (DatumObject)(WCurveObject5);

		DatumData WDatumData5 = wfcGeometry.DatumData_Create(54 , "A_1" , WDatumObject5);
		wDatumDatas.append(WDatumData5);

		Outline3D wOutline = Outline3D.create();
		Point3D wPoint1 = otkCreateIntfDataUtils.CreatePfcPoint3D( -74.689605316398, -42.30936696446474, 0.0 );
		Point3D wPoint2 = otkCreateIntfDataUtils.CreatePfcPoint3D( 74.689605316398, 107.06984366833126, 252.34 );
		wOutline.set(0, wPoint1);
		wOutline.set(1, wPoint2);

		Double value = new Double(0.0);		InterfaceData InterfaceData = wfcModel.InterfaceData_Create(wSurfDescs, wEdgeDescs, wQuiltDatas, wDatumDatas, Accuracytype.ACCU_RELATIVE, value, wOutline);
		return(InterfaceData);
		}
		catch (Exception e)
		{
		System.out.println(e);
		}
		return null;
	}
};
